/**
 * 转换题目类型
 * @param {number|string} typeText 原始题型标识
 * @returns {string} 转换后的题型
 */
export const convertQuestionType = (typeText) => {
    const typeMap = {
        1: 'single',
        2: 'multiple',
        3: 'truefalse',
        4: 'fillblank',
        5: 'essay'
    }
    return typeMap[typeText] || typeText
}

/**
 * 获取题目默认答案
 * @param {string} type 题目类型
 * @returns {null|array|string} 对应类型的默认答案
 */
export const getDefaultAnswer = (type) => {
    const answerMap = {
        single: null,
        multiple: [],
        truefalse: null,
        fillblank: [],
        essay: ''
    }
    return answerMap[type] ?? null
}

/**
 * 处理题目选项
 * @param {string|object} options 原始选项数据
 * @returns {object} 处理后的选项对象
 */
export const processOptions = (options) => {
    if (typeof options === 'string') {
        try {
            return JSON.parse(options)
        } catch (error) {
            console.error('选项格式解析错误：', error)
            return {}
        }
    }
    return options || {}
}

/**
 * 处理题目内容
 * @param {object} question 题目对象
 * @returns {string} 处理后的题目内容
 */
export const processContent = (question) => {
    if (!question?.content) return ''
    let content = question.content

    // 如果是填空题，处理填空标记
    if (question.type === 'fillblank') {
        content = content.replace(
            /\{#blank#\}\d+\{#\/blank#\}/g,
            '<u class="inline-block mx-2 min-w-[60px] border-b-2 border-gray-300"></u>'
        )
    }

    return content
}


/**
 * 处理答案解析
 * @param {string|object} json 原始 JSON 字符串或对象
 * @returns {object} 解析后的 JSON 对象
 */
export const analysisJson = (json) => {
    if (!json) return { body: '' };
    
    try {
        const answerWebJson = JSON.parse(json).explanation;
        
        return {
            body: "<img src="+answerWebJson+" alt=\"解析图片\" class=\"max-w-full h-auto rounded-lg\" />" || ''
        };
    } catch (error) {
        console.error('解析JSON出错:', error);
        return { body: '' };
    }
};